package com.docmanage.am.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.docmanage.common.annotation.Excel;
import com.docmanage.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 按角色授权对象 am_auth_role
 * 
 * @author pointLion
 * @date 2023-07-10
 */
@Data
public class AmAuthRole extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 角色id */
    @Excel(name = "角色id")
    private Long roleId;

    /** 文件夹或者文件id */
    @Excel(name = "文件夹或者文件id")
    private Long folderFileId;

    /** 权限类型。0：文件夹。1：文件 */
    @Excel(name = "权限类型。0：文件夹。1：文件")
    private String type;

    /** 权限范围。0：文件夹自己。1：文件夹下所有文件具有相同权限。 */
    @Excel(name = "权限范围。0：文件夹自己。1：文件夹下所有文件具有相同权限。")
    private String range;

    /** 查看权限。0：无。1：有。 */
    @Excel(name = "查看权限。0：无。1：有。")
    private String authView;

    /** 新增权限。0：无。1：有。 */
    @Excel(name = "新增权限。0：无。1：有。")
    private String authAdd;

    /** 修改权限。0：无。1：有。 */
    @Excel(name = "修改权限。0：无。1：有。")
    private String authUpdate;

    /** 查看文件夹下的档案：0：无。1：有。 */
    @Excel(name = "查看文件夹下的档案：0：无。1：有。")
    private String authViewFileInFolder;

    /** 删除权限。0：无。1：有。 */
    @Excel(name = "删除权限。0：无。1：有。")
    private String authDelete;

    /** 操作人 */
    @Excel(name = "操作人")
    private Long operateBy;

    /** 操作权限 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "操作权限", width = 30, dateFormat = "yyyy-MM-dd")
    private Date operateTime;







    private String name;

    private String npath;

    private String status;

    private Long parentId;

    private Long folderId;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("roleId", getRoleId())
            .append("type", getType())
            .append("range", getRange())
            .append("authAdd", getAuthAdd())
            .append("authUpdate", getAuthUpdate())
            .append("authDelete", getAuthDelete())
            .append("operateBy", getOperateBy())
            .append("operateTime", getOperateTime())
            .toString();
    }
}
